<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:output method="xml" encoding="UTF-8" indent="yes" />

	<xsl:template match="/">
		<dict>
			<xsl:apply-templates select="//dict/dict/dict" />
		</dict>
	</xsl:template>

	<xsl:template match="//dict">
		<track>
			<xsl:apply-templates select="node()[not(self::key)]" />
		</track>
	</xsl:template>

	<xsl:template match="//integer">
		<xsl:variable name="position" select="position() div 2"/>
		<xsl:element name="integer">
			<xsl:attribute name="name">
				<xsl:value-of select="../key[$position]/text()" />
			</xsl:attribute>
			<xsl:value-of select="text()" />
		</xsl:element>
	</xsl:template>

	<xsl:template match="//string">
		<xsl:variable name="position" select="position() div 2"/>
		<xsl:element name="string">
			<xsl:attribute name="name">
				<xsl:value-of select="../key[$position]/text()" />
			</xsl:attribute>
			<xsl:value-of select="text()" />
		</xsl:element>
	</xsl:template>

	<xsl:template match="//date">
		<xsl:variable name="position" select="position() div 2"/>
		<xsl:element name="date">
			<xsl:attribute name="name">
				<xsl:value-of select="../key[$position]/text()" />
			</xsl:attribute>
			<xsl:value-of select="text()" />
		</xsl:element>
	</xsl:template>

</xsl:stylesheet>